package com.droowa.model.service;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.droowa.domain.Customer;
import com.droowa.domain.CustomerOut;
import com.droowa.exception.DuplicatedIdException;

public interface CustomerService {

	public abstract int joinCustomer(Customer customer) throws SQLException,DuplicatedIdException;
	
	public abstract Customer getCustomerById(String custId) throws SQLException,DuplicatedIdException;

	public abstract int modifyCustomer(Customer customer) throws SQLException;
	
	public abstract int removeCustomerById(String custId) throws SQLException;
	
	public abstract int insertRemoveCustomer(CustomerOut custOut) throws SQLException;
	
	public abstract List<CustomerOut> getCustomerOutList() throws SQLException;
	
	public abstract CustomerOut getCustomerOutById(String custId) throws SQLException,DuplicatedIdException;
	
	public abstract int deleteCustomerOutById(String custId) throws SQLException;
	
	public abstract List<Customer> getCustomerList() throws SQLException;
	
	public abstract List<Customer> getCustomerListByName(String name) throws SQLException;
	
	public abstract List<Customer> getCustomerListByBirth(String birth) throws SQLException;
	
	public abstract List<Customer> getCustomerListByPhone(String phone) throws SQLException;
	
	public abstract List<Customer> getCustomerListByAddress(String address) throws  SQLException;
	
	public abstract List<Customer> getCustomerListByJoinDate(String joinDate) throws SQLException;
	
	public abstract Map getCustomerListPaging(int page) throws SQLException;
	
}
